package com.itheima.tlias08_14.mapper;

import com.itheima.tlias08_14.dto.*;
import com.itheima.tlias08_14.entity.Emp;
import com.itheima.tlias08_14.paramobject.InsertEmp;
import com.itheima.tlias08_14.paramobject.SelectPageParam;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

//@Repository 是由 Spring 框架提供的注解，用于将 DAO 类标记为持久层组件，并自动扫描到 Spring 容器中。
//@Mapper 是由 MyBatis 提供的注解，用于将 Mapper 接口标记为 MyBatis 的 Mapper 接口，并自动扫描到 Spring 容器中。
@Mapper
public interface EmpMapper {

    //根据姓名的模糊查询、性别、入职时间区间、分页查询员工信息
    List<SelectEmp> selectEmp(@Param("spp") SelectPageParam selectPageParam);

    int deleteEmpById(@Param("id") List<Integer> id);

    //返回值为插入后元素的主键
    int insertEmp(@Param("ise") InsertEmp insertEmp);

    SelectEmpById selectEmpById(@Param("id") Integer id);

    int updateEmp(@Param("e") SelectEmpById emp);

    //查询所有班主任
    List<Emp> selectAllEmp();

    //统计员工性别
    List<StatisticEmpGenderDTO> countGender();

    //统计员工岗位
    List<StatisticEmpGenderDTO> countJob();

    List<Integer> selectEmpByJob();



    LoginDTO selectByUsername(@Param("username") String userName);


}
